package algo_annotations.params.objects;

import commons.data.category.Category;
import commons.utils.Utils.Side;


// La contrainte geometrique des semgents à éviter n'est qu'une epaisseur pour une catégorie de segment
public class ContrainteGeomSegment {

	public Category categorySegment;
	public double epaisseur_papier_mm;
	public double epaisseur_dissymetrie_mm;
	public Side sideDissymetrie;

	public ContrainteGeomSegment(Category categorySegment, double epaisseur_papier_mm, double epaisseur_disymetrie_mm, Side side) {
		this.categorySegment = categorySegment;
		this.epaisseur_papier_mm = epaisseur_papier_mm;
		this.epaisseur_dissymetrie_mm = epaisseur_disymetrie_mm;
		this.sideDissymetrie = side;
	}
	public boolean hasDissymetrie() {return epaisseur_dissymetrie_mm > 0;}
	
	public boolean equals(ContrainteGeomSegment cgs) {
		if (this==cgs)
			return true;
		return this.epaisseur_papier_mm == cgs.epaisseur_papier_mm &&
				this.epaisseur_dissymetrie_mm == cgs.epaisseur_dissymetrie_mm &&
				this.sideDissymetrie == cgs.sideDissymetrie;
	}

	@Override
	public String toString() {
		return "" + categorySegment + " -> epaisseur papier = " + epaisseur_papier_mm;
	}

}
